The generation of color documents can be thought of as a two step process: first, the generation of the image by means of scanning an original document with a color image input terminal or scanner or, alternatively, creating a color image on a work station operated in accordance with a color image creation program; and secondly, printing of that image with a color printer in accordance with the colors defined by the scanner or computer generated image. Scanners typically operate with colors defined in a color space of tristimulus values, i.e., RGB (red-green-blue). Commonly, these values are a linear transformation of the standard XYZ coordinates of CIE color space, or another transform of those values.
Printers have an output which can be defined as existing in a color space called CMYK (cyan, magenta, yellow, key or black) which is uniquely defined for the printer by its capabilities and colorants. Printers operate by the addition of multiple layers of ink or colorant in layers or halftone dots to a page. The response of the printer tends to be non-linear. Thus, while a printer receives information in a first color space which has values defined independently of any device, it must convert that information to print in a second color space which is dependent of device characteristics.
The desirability of operating in a tristimulus color space with subsequent conversion to a printer colorant color space is well known, as shown by U.S. Pat. No. 4,500,919 to Schreiber, U.S. Pat. No. 2,790,844 to Neugebauer, and U.S. Pat. No. 4,275,413 to Sakamoto. There are many methods of conversion between color spaces, all of which begin with the measurement of printer response to certain input values. Commonly, a printer is driven with a set of color input values, the values are printed in normal operation of the printer, and measurements are made of those colors to determine what the actual color printed was in response to the color specification. As previously noted, most printers have non-linear response characteristics.
The calibration of a printer involves the process of finding what set of signals must be sent to a printer to obtain a desired color. The desired color is described in some device independent terminology (i.e. some well defined standard), and the signals to the printer constitute a device dependent terminology. A complete calibration will transform the device independent color description into a device dependent description such that the resultant combination of materials (i.e. ink, toner, dye, etc.) on the paper produces the desired color (i.e. the color which was initially described in a device independent fashion).
The calibration of high quality printers can be divided into three major tasks, (1) setting gray balance (denoted by GB), (2) determining black addition (sometimes K+) and under color removal (termed UCR or sometimes termed "gray component replacement"); and finally (3) color correction or color transformation.
Gray balance consists of determining what combination of inks are needed to produce a neutral gray of a desired density. Since black ink is neutral, only the combination of CMY inks must be determined. The black channel of the printer is linearized such that the reflectance from black ink is a linear function of the input signal. Because of unwanted absorption, printer non-linearities and other effects, it is generally not the case that equal amounts of CMY ink will produce a neutral color, but it is useful to define a CMY signal for which this is the case. When the gray balanced printer is given equal amounts of CMY as input signals, it will put down the amounts of cyan, magenta, and yellow ink that is needed to produce a neutral color. This generally means that the ink amounts on paper will not be equal, but the final color will be neutral.
The procedure for gray balancing a printer involves printing many different combinations of CMY ink, and then inspecting the resulting patches to find the neutral colors. Then, the neutral patches are found by measuring the color of the patches (there may be an initial visual sort of the patches). Hopefully, neutral patches of different densities are obtained, and then a curve fitting procedure is used to predict the ink combinations needed for the other obtainable neutral grays. The difficulty with this procedure is the printing and inspection of many patches, and that it requires the production, searching, and predicting to take place in a three dimensional space.
The process known as UCR involves determining how much CMY ink to remove after a specified amount of black ink has been added to the same color. The idea here is to replace some of the CMY ink with black ink. Black ink is used to both extend the gamut of the printer, which aids in the production of sharper, cleaner looking images, and to reduce the total amount of ink on the page.
The procedure for determining the amount of UCR is a strong function of black addition. An example of one such black addition strategy is that of adding no black up until some minimum density, and then slowly adding more black as the density of the requested color increases. In one possible calibration strategy, the amount of black ink is zero until some minimum density, and then increases quadratically as a function of requested density.
One method of color calibration requires first performing a gray balance calculation of the printer, followed by a determining K+ and UCR, and finally making a determination of a color correction transform. The gray balance process requires searching through a three dimensional table, with interpolation to find a proper combination of inks to produce a neutral color. The second stage of the calibration requires the choice of an initial K+ strategy and then the measurement of printed patches to modify the K+ strategy and determine a UCR strategy. The final stage of the calibration requires the establishment of a color correction transformation. This is currently done by printing and measuring 1000 (10.times.10.times.10) or 512 (8.times.8.times.8) patches distributed throughout the color space. These patches are used to build a three dimensional look-up-table (LUT) which is used with tetrahedral interpolation. In the long calibration process, the table should only have to make minor corrections to the colors; grays should already be gray (because of the gray balance calibration), and the colors should not change significantly in density (because the UCR calibration has been done).
In U.S. Pat. No. 4,500,919 to Schreiber, and U.S. Pat. No. 4,275,413 to Sakamoto, the information derived from patch measuring was placed into look-up tables, stored in a memory, perhaps ROM memory or RAM memory where the look-up table relates input color space to output color space. The look-up table is commonly a three dimensional table since color space is three dimensional. With a scanner or computer, the RGB space can be defined as three dimensional with black at the origin of a three dimensional coordinate system (0,0,0), and white at the maximum of a three dimensional coordinate system which an 8-bit system, would be located at (255, 255, 255). Each of the three axes radiating from the origin point therefore respectively define red, green, and blue. A similar construct can be made for the printer, with axes representing cyan, magenta, and yellow. Black is usually a separate toner which is added separately. In the 8-bit system suggested there will be, however, over 16 million possible colors (256.sup.3) There are clearly too many values for a 1:1 mapping of RGB to CMYK. Accordingly, as proposed in U.S. Pat. No. 4,275,413 to Sakamoto, only a relatively small number of samples are made at the printer, perhaps on the order of 1,000, or even less. Therefore, the look-up tables consist of a set of values which could be said to be the intersections for corners of a set of rectangular parallel-pipeds mounted on top of one another. Colors falling within each rectangular volume can be interpolated from the measured values, through many methods including tri-linear interpolation, tetrahedral interpolation, polynomial interpolation, linear interpolation, and any other interpolation method depending on the accuracy of the desired result.
All of the references cited herein are incorporated by reference for their teachings.